--- 新乡华隆电磁流量计 XXHL_DC modbus 协议9600,N dtype=18,addr=01H(默认)
--- 后期可以自定义addr（通信地址），需要网络设置
module(..., package.seeall)
local logtag = "XXHL_DC"
local dtu, udtu,addr = {}, {},1
function setDtu(_dtu, _udtu)
    dtu, udtu = _dtu, _udtu
    addr = udtu.addr and tonumber(udtu.addr) or 1
    if udtu and tonumber(udtu.dtype) == 18 then sys.taskInit(init) end
end
function _pro(d)
    local _, ins = pack.unpack(d:sub(4, 7), ">I")
    ins = ins and ins/1000
    local val = tonumber((d:sub(14, 17)):toHex(), 16)
    lcd.LCD_DATA[3]= "累计:"..val  .." 瞬时:"..string.format("%.2f",ins)
    usrdata.update({val,ins})
end
function init()
    sys.wait(200)
	while true do
        tools.modbus_send(3,addr,3,0,10)
        local res, d = sys.waitUntil("UART_READ_DONE_NEXT_3" , 5000)
        if res then
            if d then
                _pro(d)
            end
            sys.wait(5000)
        else
            lcd.LCD_DATA[3]="华隆READ TIMEOUT"
        end
	end
end
